import '../models/prompt_model.dart';

/// 默认数据服务 - Default Data Service
/// 提供应用程序的默认Prompt数据，用于演示和初始化
/// Provides default prompt data for application demonstration and initialization
class DefaultDataService {
  /// 获取默认Prompt列表 - Get default prompt list
  /// Returns a list of sample prompts for demonstration purposes
  /// 返回用于演示的示例Prompt列表
  static List<PromptModel> getDefaultPrompts() {
    final now = DateTime.now();
    
    return [
      // 1. 代码生成类Prompt - Code Generation Prompt
      PromptModel(
        id: 'default_001',
        title: '代码生成助手',
        description: '帮助生成高质量的代码，支持多种编程语言',
        content: '''请帮我生成一个{{language}}的{{function_type}}函数，要求：

1. 函数名：{{function_name}}
2. 功能描述：{{description}}
3. 输入参数：{{parameters}}
4. 返回值：{{return_type}}

请确保代码：
- 遵循最佳实践
- 包含适当的注释
- 处理边界情况
- 具有良好的可读性

示例格式：
```{{language}}
// 函数注释
function {{function_name}}({{parameters}}) {
    // 实现逻辑
    return {{return_value}};
}
```''',
        category: '编程开发',
        tags: ['代码生成', '编程', '开发工具'],
        createdAt: now.subtract(const Duration(days: 7)),
        lastModified: now.subtract(const Duration(days: 7)),
        version: 1,
        filePath: '',
        fileFormat: 'md',
        metadata: {'isFavorite': true},
        usageCount: 15,
        templateVariables: [],
      ),

      // 2. 文案写作类Prompt - Content Writing Prompt
      PromptModel(
        id: 'default_002',
        title: '营销文案生成器',
        description: '创建吸引人的营销文案和广告内容',
        content: '''请为我创建一个{{product_type}}的营销文案，要求：

产品信息：
- 产品名称：{{product_name}}
- 目标受众：{{target_audience}}
- 核心卖点：{{key_features}}
- 价格区间：{{price_range}}

文案要求：
1. 标题要吸引眼球，不超过20字
2. 正文突出产品优势和用户痛点
3. 包含明确的行动号召(CTA)
4. 语言风格：{{tone}}
5. 字数控制在{{word_count}}字以内

请按以下格式输出：
【标题】
【正文】
【行动号召】''',
        category: '营销推广',
        tags: ['文案写作', '营销', '广告'],
        createdAt: now.subtract(const Duration(days: 5)),
        lastModified: now.subtract(const Duration(days: 5)),
        version: 1,
        filePath: '',
        fileFormat: 'md',
        metadata: {'isFavorite': false},
        usageCount: 8,
        templateVariables: [],
      ),

      // 3. 学习教育类Prompt - Educational Prompt
      PromptModel(
        id: 'default_003',
        title: '知识点解释器',
        description: '用简单易懂的方式解释复杂概念',
        content: '''请用通俗易懂的方式解释"{{concept}}"这个概念：

解释要求：
1. 目标受众：{{audience_level}}
2. 解释深度：{{depth_level}}
3. 包含实际例子和类比
4. 避免过于专业的术语
5. 结构清晰，逻辑性强

请按以下结构组织内容：

## 简单定义
用一句话概括这个概念

## 详细解释
深入说明概念的含义和原理

## 实际例子
提供2-3个生活中的具体例子

## 常见误区
指出人们容易产生的误解

## 延伸思考
相关的概念或进一步学习的方向''',
        category: '教育学习',
        tags: ['教育', '解释', '学习'],
        createdAt: now.subtract(const Duration(days: 3)),
        lastModified: now.subtract(const Duration(days: 3)),
        version: 1,
        filePath: '',
        fileFormat: 'md',
        metadata: {'isFavorite': true},
        usageCount: 12,
        templateVariables: [],
      ),

      // 4. 数据分析类Prompt - Data Analysis Prompt
      PromptModel(
        id: 'default_004',
        title: '数据分析报告生成器',
        description: '基于数据生成专业的分析报告',
        content: '''请基于以下数据生成一份专业的分析报告：

数据背景：
- 数据来源：{{data_source}}
- 时间范围：{{time_period}}
- 分析目标：{{analysis_goal}}
- 关键指标：{{key_metrics}}

报告结构：

## 执行摘要
- 核心发现（3-5个要点）
- 主要建议

## 数据概览
- 数据质量评估
- 样本规模和特征

## 关键发现
- 趋势分析
- 异常值识别
- 相关性分析

## 深度洞察
- 原因分析
- 影响因素
- 预测趋势

## 行动建议
- 具体建议措施
- 优先级排序
- 预期效果

请确保：
- 数据驱动的结论
- 可视化建议
- 可执行的建议''',
        category: '数据分析',
        tags: ['数据分析', '报告', '商业智能'],
        createdAt: now.subtract(const Duration(days: 2)),
        lastModified: now.subtract(const Duration(days: 2)),
        version: 1,
        filePath: '',
        fileFormat: 'md',
        metadata: {'isFavorite': false},
        usageCount: 6,
        templateVariables: [],
      ),

      // 5. 创意设计类Prompt - Creative Design Prompt
      PromptModel(
        id: 'default_005',
        title: 'UI/UX设计建议生成器',
        description: '为界面设计提供专业建议和创意方案',
        content: '''请为{{project_type}}项目提供UI/UX设计建议：

项目信息：
- 项目类型：{{project_type}}
- 目标用户：{{target_users}}
- 主要功能：{{main_features}}
- 设计风格：{{design_style}}
- 平台要求：{{platforms}}

设计建议包括：

## 用户体验策略
- 用户旅程分析
- 交互流程优化
- 可用性原则应用

## 视觉设计方案
- 色彩搭配建议
- 字体选择指导
- 布局结构规划

## 界面元素设计
- 导航设计
- 按钮和控件
- 图标系统

## 响应式设计
- 不同屏幕适配
- 交互状态设计
- 加载和反馈机制

## 可访问性考虑
- 无障碍设计
- 多语言支持
- 性能优化

请提供具体的设计建议和最佳实践。''',
        category: '设计创意',
        tags: ['UI设计', 'UX设计', '用户体验'],
        createdAt: now.subtract(const Duration(days: 1)),
        lastModified: now.subtract(const Duration(days: 1)),
        version: 1,
        filePath: '',
        fileFormat: 'md',
        metadata: {'isFavorite': true},
        usageCount: 4,
        templateVariables: [],
      ),

      // 6. 项目管理类Prompt - Project Management Prompt
      PromptModel(
        id: 'default_006',
        title: '项目计划制定助手',
        description: '帮助制定详细的项目计划和时间安排',
        content: '''请为"{{project_name}}"项目制定详细的项目计划：

项目基本信息：
- 项目名称：{{project_name}}
- 项目目标：{{project_goals}}
- 预算范围：{{budget_range}}
- 时间限制：{{timeline}}
- 团队规模：{{team_size}}
- 关键干系人：{{stakeholders}}

项目计划包括：

## 项目范围定义
- 项目边界和约束
- 可交付成果清单
- 成功标准定义

## 工作分解结构(WBS)
- 主要阶段划分
- 具体任务分解
- 任务依赖关系

## 时间计划
- 里程碑设置
- 关键路径分析
- 缓冲时间安排

## 资源配置
- 人员分工
- 技能要求匹配
- 外部资源需求

## 风险管理
- 潜在风险识别
- 风险应对策略
- 应急预案

## 质量保证
- 质量标准
- 检查点设置
- 验收标准

请提供可执行的项目计划模板。''',
        category: '项目管理',
        tags: ['项目管理', '计划制定', '团队协作'],
        createdAt: now,
        lastModified: now,
        version: 1,
        filePath: '',
        fileFormat: 'md',
        metadata: {'isFavorite': false},
        usageCount: 2,
        templateVariables: [],
      ),
    ];
  }

  /// 获取默认分类列表 - Get default category list
  /// Returns a list of default categories for prompts
  /// 返回Prompt的默认分类列表
  static List<String> getDefaultCategories() {
    return [
      '编程开发',
      '营销推广', 
      '教育学习',
      '数据分析',
      '设计创意',
      '项目管理',
      '内容创作',
      '商业策略',
      '技术文档',
      '客户服务',
    ];
  }

  /// 获取默认标签列表 - Get default tag list
  /// Returns a list of commonly used tags
  /// 返回常用标签列表
  static List<String> getDefaultTags() {
    return [
      '代码生成',
      '文案写作',
      '数据分析',
      'UI设计',
      'UX设计',
      '项目管理',
      '营销',
      '教育',
      '学习',
      '创意',
      '策略',
      '技术',
      '商业',
      '效率',
      '自动化',
    ];
  }
}